Controlling visualization of data by a dashboard widget

ABSTRACT

Display data in a data graphical user interface (GUI) on a display device and display, by a processor, a control GUI on the display device representing the data. The control GUI includes a range defining visual element, corresponding to a data value, that is moveable via input received by the control GUI and defines two ranges of the data. The processor displays indicia associated with the range defining visual element indicating the corresponding data value. The processor receives input from the control GUI indicating the range defining visual element has been moved. In response, the processor visually emphasizes data in the data GUI having data values in a selected one of the defined data range.

BACKGROUND

The present disclosure relates generally to visualization of data, andmore particularly, to controlling the visualization of data by agraphical user interface.

Conditional formatting and data highlighting exist in business analyticsand business information applications making it easier to locatecritical data from amongst the masses of data available. Typical reportauthoring software supports methods to highlight data that falls withindesired data thresholds and zones with effects such as color, bold font,and flashing backgrounds. Various products provide menus to define thedesired data thresholds and zones, and to define the formatting optionsto support the authoring of conditional formatting for highlighting.

A typical way to display data is on a “dashboard,” a dashboard being avisual display of the most important information needed to achieve oneor more objectives. A dashboard consolidates and arranges information ona single screen, allowing the information to be monitored at a glance. Adashboard, may display data within predefined data thresholds, andinclude visual highlighting of certain important information.

SUMMARY

Embodiments of the present disclosure disclose a method, computerprogram product, and system for visualization of data. A processordisplays data in a data graphical user interface (GUI) on a displaydevice and displays a control GUI on the display device representing thedata. The control GUI includes a range defining visual element,corresponding to a data value. The range defining visual element ismoveable via input received by the control GUI and defines two ranges ofthe data. The processor displays indicia associated with the rangedefining visual element indicating the corresponding data value. Theprocessor receives input from the control GUI indicating the rangedefining visual element has been moved. In response, the processorvisually emphasizes data in the data GUI having data values in aselected one of the defined data range.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Features and advantages of the present invention will become apparentfrom the following detailed description of illustrative embodimentsthereof, which is to be read in connection with the accompanyingdrawings. The various features of the drawings are not to scale as theillustrations are for clarity in facilitating one skilled in the art inunderstanding the invention in conjunction with the detaileddescription. In the drawings:

FIG. 1 illustrates a functional block diagram of a dashboardenvironment, in accordance with an embodiment of the disclosure;

FIG. 2 is a block diagram of an exemplary dashboard data widget andcontrol widget, in accordance with an embodiment of the disclosure;

FIG. 3 is a block diagram of an exemplary revenue table dashboard datawidget and gauge control widget, in accordance with an embodiment of thedisclosure;

FIG. 4 is a block diagram of an exemplary revenue table dashboard datawidget and gauge control widget, in accordance with an embodiment of thedisclosure;

FIG. 5 is a flowchart illustrating the operation for visualization ofdata, in accordance with an embodiment of the disclosure;

FIG. 6 depicts a block diagram of components of the computing device ofa dashboard environment, in accordance with an embodiment of thedisclosure.

DETAILED DESCRIPTION

In computers, a data widget is an element of a graphical user interface(GUI) that displays information. Data widgets may be displayed as partof a dashboard, and may be any graphical representation of dataincluding, but not limited to, tables, charts, lists, crosstabs, graphs,forms, text, and maps. Typically, the selection of key data within thedata widget to highlight, or conditionally format, is neither intuitivenor interactive. Conditional formatting decisions for the data widgetare typically pre-defined and static, preventing a dashboard user fromeasily and dynamically highlighting alternate data within the datawidget. A business user may wish to more easily visualize newcombinations of data presented in a data widget. Dynamicallyhighlighting those various combinations, in an intuitive way, mayimprove dashboard usability. Embodiments of the present inventionadvantageously define a dashboard control widget to dynamically controlthe conditional formatting of a data widget on the dashboard. Thedashboard control widget may allow for easier and more intuitive datahighlighting control by providing the ability to dynamically alterhighlighted data in the data widgets on the dashboard. Variousembodiments of the dashboard control widget may include gauges, dials,slide bars, tables, and graphs. Control widgets may use interactivetabs, and pointers to identify a range of data in a data widget tohighlight with conditional formatting. For exemplary purposes only, agauge will be used as the control widget. A control widget, such as agauge, empowers a dashboard user with limited technical skills to easilycontrol data highlighting using the familiar widgets of businessintelligence dashboards.

FIG. 1 illustrates a functional block diagram of an exemplary dashboardenvironment 199, in accordance with an embodiment of the disclosure.Dashboard environment 199 includes computing device 122 and displaydevice 100. Display device 100 may be used to display a dashboardincluding a data widget 105 and a control widget 115. In variousembodiments, display device 100 may display a plurality of both datawidgets 105 and control widgets 115.

In various embodiments, display device 100 may be a touch screen whichallows users to make selections, move a cursor, or drag and drop widgetsby touching the screen via a finger or stylus. In general, touch screenscan recognize the size, shape, position, and movement of the touch andoutput this information to computing device 122. In various embodiments,display device 100 may allow users to make selections, move a cursor,and drag and drop widgets using a pointing device, such as a mouse. Anydevice that houses a display generally provides an ApplicationProgramming Interface (API). APIs are typically provided to allowprograms on computing device 122 to obtain information from displaydevice 100 whenever a touch or click, hereinafter “event”, occurs ondisplay device 100. Data widget 105 events and control widget 115 eventsmay be recognized when a mouse pointer or touch has entered, touched,clicked, dragged, dropped, moved, or left the area of display device 100covered by control widget 115 or data widget 105.

Computing device 122 represents a computing device, system, orenvironment that includes one or more data widget routines 140, one foreach data widget 105 on display device 100, and one or more controlwidget routines 150, one for each control widget 115 on display device100, and rendering engine 130, all of which may be stored, for example,on a tangible storage device, such as tangible storage device(s) 630(FIG. 6) or removable tangible storage devices(s) 670 (FIG. 6).

Computing device 122 may be a laptop computer, a notebook computer, apersonal computer (PC), a desktop computer, a tablet computer, a thinclient, a mobile phone or any other electronic device or computingsystem capable of performing the required functionality of embodimentsof the disclosure. Computing device 122 may include internal andexternal hardware components, as depicted and described in furtherdetail with respect to FIG. 6. In other various embodiments of thepresent disclosure, computing device 122 may represent a computingsystem utilizing clustered computers and components to act as a singlepool of seamless resources. In general, computing device 122 isrepresentative of any programmable electronic device or combination ofprogrammable electronic devices capable of executing machine-readableprogram instructions in accordance with an embodiment of the disclosure.

Data widget routine 140 and control widget routine 150 may, in anembodiment execute as a result of a data widget 105 event or a controlwidget 115 event, on display device 100, for the routine's respectivewidget. For example, control widget routine 150 may execute when displaydevice 100 detects data widget 105 has been dragged and dropped ontocontrol widget 115.

A drag and drop event, performed on display device 100 by either a mouseclick or touch, may “wire” data widget 105 together with control widget115, creating a communication link that allows information to pass amongthe wired widget routines. This passed information includes an eventname, a payload of content data, and a payload type. After widgets arewired together, an event occurring in one of the wired widgets, forexample a mouse click of a cell in a table, initiates the passing ofinformation to the wired widgets' routines. After the wired widgets'routines receive the information, a designated action takes place. Forexample, a page refreshes and display device 100 displays updatedinformation. A drag and drop event that wires data widget 105 withcontrol widget 115 also connects data widget routine 140 and controlwidget routine 150, establishing the link between the routines thatenables control widget 115 to control the conditional formatting of datawidget 105.

In various embodiments, data widget routine 140 may manage the datavalues and conditional formatting for data widget 105. Data widgetroutine 140 may communicate with rendering engine 130 to establishinitial conditional formatting for the data widget 105 display and alterany conditional formatting, as necessary, whenever data widget 105 isupdated or refreshed on display device 100. Data widget routine 140 mayalso communicate with control widget routine 150 as a result of acontrol widget 115 event on display device 100.

In various embodiments, control widget routine 150 may communicate withdata widget routine 140 to receive the managed data values for datawidget 105 and send formatting control information for data widget 105.Data widget routine 140 may utilize the formatting control informationto update the conditional formatting of data widget 105. Data widgetroutine 140 may receive formatting control information, from controlwidget routine 150, for each control widget 115 event on display device100. In an exemplary embodiment, control widget routine 150 isassociated with an exemplary gauge control widget 115, or gauge. Controlwidget routine 150 may, in other embodiments, support other controlwidget implementations.

Rendering engine 130 may, in an embodiment receive control from datawidget routine 140 to render the data widget 105 associated with datawidget routine 140 for display on display device 100. Rendering engine130 will be specific to the graphical representation of data widget 105,for example a chart rendering engine for a chart data widget. Typicalrendering engines have known interfaces for receiving conditionalformatting rules or conditional formatting definitions for a datawidget.

FIG. 2 is a diagram of an exemplary dashboard data widget 105 andcontrol widget 115, shown in two states 115A and 115B, in accordancewith an embodiment of the disclosure. On the exemplary dashboard of FIG.2, the control widget 115 is shown as a gauge. Exemplary gauge 115Arepresents the gauge as it may appear on the dashboard before beingwired to a data widget. Gauge 115A includes a plurality of zones 210A,210B, 210C, which subdivide the gauge 115A. No data has yet beenassociated with the zones 210. The plurality of zones may havedistinguishable visual characteristics, such as color, to visuallysubdivide the gauge 115. In an embodiment, after data is associated withthe gauge, a green zone may indicate a good data range, a yellow zonemay indicate an acceptable data range, and a red zone may indicate anunacceptable data range. Various gauge embodiments may includeinteractive zone tabs 230A, 230B, 230C, 230D to adjust the beginning orend of zones 210, and interactive range pointers 220A, 220B, to identifythe range of data to be conditionally formatted, or, for example,visually emphasized or highlighted, in the data widget. Certainembodiments may allow gauge display characteristics to be user defined.For example, the number of zones displayed, the visual characteristicsassociated with each zone 210A, 210B, 210C, and the formula determiningthe data value, hereinafter “zone threshold”, at the beginning and endof each zone 210A, 210B, 210C, may be based in whole or in part on userinput. For example, one exemplary formula may set the zone thresholdssuch that the data range is divided equally among the zones 210. Anotherexemplary formula may set the zone thresholds based on a statisticalmodel, such as a standard deviations associated with a bell curve of thedata values.

Various embodiments may dynamically wire a data widget 105, for examplea revenue table whose formatting is to be controlled by a controlwidget, to the control widget 115A, 115B. In various embodiments, therevenue table 105 may be dragged and dropped onto the exemplary gauge115B. The drag and drop gesture may be accomplished either by touch ormouse click. The exemplary drag and drop gesture 200 may wire datawidget routine 140, for revenue table 105, with control widget routine150, for gauge 115B, and establish a communication link between them. Invarious embodiments, after revenue table 105 is dragged and dropped ongauge 115B, control widget routine 150 may execute, as a result of thedrag and drop event on display device 100. Control widget routine 150may send a “get data” request to the data widget routine 140 wired tocontrol widget routine 150 to obtain the data used by revenue table 105.Certain embodiments may utilize a publish/subscribe model tocommunicate. Control widget routine 150 may listen for a “sent data”request from the wired data widget routine 140 and receive payload datathat may include, but is not limited to, the range of data values inrevenue table 105, all data values in revenue table 105, and sample datavalues in revenue table 105. For example, a drag and drop of revenuetable 105 onto gauge 115B sends a payload including the range of datavalues in revenue table 105 (0 to 600,000,000). Various embodiments maysend a payload of all data values represented by a data widget 105, evenif the data widget 105 displays only a subset of all the data. Controlwidget routine 150 may utilize the received data ranges or data valuesto initially establish zones 210A, 210B, 210C and zone thresholds foreach of the zones. Exemplary gauge 115B displays the results of a dragand drop of revenue table 105 onto gauge 115B. Exemplary gauge 115Bincludes three zones 210A, 210B, 201C, the zone thresholds dividedequally among the zones 210, for the revenue table 105 data range of0-600,000,000 (i.e., zone thresholds of 0, 200,000,000, 400,000,000, and600,000,000).

In certain embodiments, control widget 115 may control the conditionalformatting of a plurality of data widgets 105 simultaneously or controlvarious data widgets 105 on the dashboard at different times. In anembodiment with multiple data widgets 105 controlled simultaneously by asingle control widget 115, zones 210 may reflect a superset of all thedata ranges of the plurality of data widgets 105 wired to the samecontrol widget 115. All the data widget routines 140 associated with theplurality of controlled data widgets 105 may be able to communicate withcontrol widget routine 150. Control widget routine 150 may dynamicallyupdate zones and zone thresholds as data widgets 105 are wired to andunwired from the control widget 115. In certain embodiments, all thewired data widget routines 140 may additionally communicate with eachother.

FIG. 3 is a block diagram of an exemplary revenue table dashboard datawidget 105 and gauge control widget 115, in accordance with anembodiment of the disclosure. Various embodiments may allow interactive,movable, range pointers 220A, 220B on gauge 115 that define the bounds,or range, of data values in revenue table 105 to be highlighted. Eachrange pointer 220A, 220B may be associated with a range bound value310A, 310B. Certain embodiments may initialize the range bound values310 to 0, indicating no highlighting, when gauge 115 is initialized.Various embodiments may allow a mouse click or touch event to drag rangepointers 220. In certain embodiments, control widget routine 150 mayexecute as a result of a range pointer 220A, 220B drag and drop event ondisplay device 100. In other embodiments, control widget routine 150 mayexecute multiple times during the drag of a range pointer 220A, 220B,resulting from range pointer 220 “position change” events on displaydevice 100. Control widget routine 150 may utilize the position payloadinformation, received with the position change event or drag and dropevent, to determine a new range bound value 310 represented by therepositioned range pointer 220A, 220B. In various embodiments, gauge 115may determine the angle of the repositioned range pointer 220A from theposition payload information received and may utilize the angle and datavalues represented by gauge 115 to determine the new range bound value310A. Other mechanisms may utilize position payload information receivedfrom display device 100 to proportionally determine the range boundvalue 310A, 310B for various other types of control widgets, for examplea slide. In certain embodiments, control widget routine 150 mayrecognize additional range pointer 220 events such a double mouse clickor double touch that occurs over a portion of display device 100 coveredby the range pointer 220A, 220B. Control widget routine 150 may, on adouble click, double touch, or other range pointer event create apopover 350 that provides an input field 351 for entering a value thatwill become the range bound value 310A, 310B for the clicked or touchedrange pointer 220A, 220B. Control widget routine 150 may display arepositioned range pointer 220A, 220B that reflects the range boundvalue 310A, 310B entered in the popover 350 input field 351, exactly asif the range pointer 220A, 220B had been dragged to the equivalent rangebound value 310A, 310B.

After control widget routine 150 determines the new range bound values310, control widget routine 150 may send a “highlight update” event toany data widget routines 140 wired to control widget routine 150 with apayload that includes the range bound values 310, zone threshold values,and zone visual characteristics (such as color). Data widget routine 140may listen for the “highlight update” event and update its conditionalformatting information for data points within the range bound values 310utilizing the input zone threshold values and zone visualcharacteristics. Data widget routine 140 may pass control to itsrendering engine 130 to re-render the data widget 105 based on theupdated conditional formatting information that reflects the zone visualcharacteristics for data points within the input range bound values310A, 310B. Data widget routine 140 may refresh display device 100 withthe re-rendered data widget 105. Any data point in the re-rendered datawidget 105 whose value is within the range bound values 310A, 310B maybe highlighted with its corresponding characteristic from the zone 210A,210B, 210C. Range bound values 310 may span multiple zones 210 causingdata widget 105 data points to be highlighted with multiple visualcharacteristics, each data point's visual characteristic correspondingto the visual characteristic of the zone 210A, 210B, 201C in which thedata value resides.

The exemplary gauge 115 and revenue table 105 illustrate range boundvalues 310A, 310B of 0 and 120,000,000 and revenue table 105 data pointsbetween 0 and 120,000,000 highlighted with the visual characteristic ofthe gauge zone 210A, 210B, 210C. In certain embodiments, a single rangepointer 220A may be used, separating the exemplary gauge 115 into tworanges, 0—range bound value 310A and range bound value 310A—600,000,000.The range bound values 310 included in the payload to data widgetroutine 140 may be determined by a gauge 115 event such as a mouse clickor touch on one of the two ranges, or may default to either the lowerrange of data values or the higher range of data values.

FIG. 4 is a block diagram of an exemplary revenue table dashboard datawidget 105 and gauge control widget 115, in accordance with anembodiment of the disclosure. Similar to the interactive, movable rangepointers 220A, 220B described above, with reference to FIG. 3, variousembodiments may allow interactive, movable, zone tabs 230A, 230B, 230C,230D on gauge 115 to dynamically adjust the zone thresholds 410A, 410B,410C, 410D of gauge 115. Various embodiments may allow a mouse click ortouch event to drag zone tabs 230. In certain embodiments, controlwidget routine 150 may execute as a result of a zone tab 230 drag anddrop event on display device 100. In other embodiments, control widgetroutine 150 may execute multiple times during the drag of zone tab 230A,230B, 230C, 230D, resulting from zone tab 230 “position change” eventson display device 100. Control widget routine 150 may utilize theposition payload information, received with the position change event ordrag and drop event, to determine a new zone threshold 410 representedby the repositioned zone tab 230A, 230B, 230C, 230D. In variousembodiments, gauge 115 may determine the angle of the repositioned zonetab 230A, 230B, 230C, 230D from the position payload informationreceived and may utilize the angle and data values represented by gauge115 to determine the zone threshold 410A, 410B, 410C, 410D. Othermechanisms, may utilize position payload information received fromdisplay device 100 to proportionally determine the zone threshold 410A,410B, 410C, 410D for various other types of control widgets, for examplea slide. In certain embodiments, control widget routine 150 mayrecognize additional zone tab 230 events such a double mouse click ordouble touch that occurs over a portion of display device 100 covered bythe zone tab 230A, 230B, 230C, 230D. Control widget routine 150 may, ona double click, double touch, or other zone tab event create a popover450 that provides an input field 451 for entering a value that willbecome the zone threshold 410A, 410B, 410C, 410D for the clicked ortouched zone tab 230A, 230B, 230C, 230D. Control widget routine 150 maydisplay a repositioned zone tab 230 that reflects the zone threshold410A, 410B, 410C, 410D entered in the popover 450 input field 451,exactly as if the zone tab 230A, 230B, 230C, 230D had been dragged tothe equivalent zone threshold 410A, 410B, 410C, 410D. The exemplarygauge 115 zone tab 230C repositioned to a zone threshold 410C of550,000,000, causes range bound values 310A, 310B to span zones 210.

After control widget routine 150 determines the new zone thresholds410A, 410B, 410C, 410D, control widget routine 150 may send a “highlightupdate” event to any data widget routines 140 wired to control widgetroutine 150 with a payload that includes the range bound values 310, newzone thresholds 410, and zone visual characteristics (such as color). Asdescribed above, with reference to FIG. 3, data widget routine 140 maylisten for the “highlight update” event, update its conditionalformatting information, pass control to its rendering engine 130, andrefresh display device 100 with the re-rendered data widget 105 thatreflects the updated gauge zone thresholds 410.

The exemplary gauge 115 and revenue table 105 illustrate range boundvalues 310A, 310B of 500,000,000 and 600,000,000 which span gauge zones210. Revenue table 105 data points between 500,000,000 and 600,000,000are highlighted with the visual characteristics of their respectivegauge zones 210A, 210B, 210C.

FIG. 5 is a flowchart illustrating the operation for visualization ofdata, in accordance with an embodiment of the disclosure. The computingdevice 122 may, at 510, display data in a data GUI, or data widget 105,on display device 100. The computing device 122 may additionallydisplay, at 520, a control GUI, or control widget 115, on display device100. The control widget 115 represents the data in data widget 105. Thedata widget 105 and control widget 115 may be displayed in a dashboard.The control widget 115 may include one or more movable range definingvisual elements, or range pointers 220, that correspond to a data value.The range pointers 220 may be moved by range pointer 220A, 220B eventson display device 100, such as a mouse click or touch. A single rangepointer 220A may separate the control widget 115 into two data ranges.Multiple range pointers 220 may separate the control widget intomultiple data ranges. The control widget 115 may also include indicia,or range bound values 310, displaying the data values that correspondwith the range pointers 220. Additionally, the control widget 115 mayinclude zones 210 representing definable portions of the datarepresented by the control widget 115. Each zone 210A, 210B, 210C mayhave visual characteristics to distinguish them. The zones 210 may beseparated by movable zone defining visual elements, or zone tabs 230,that each correspond to a data value, and indicia, or zone thresholds410, displaying the data values that correspond with each zone tab 230A,230B, 230C, 230D. The zone tabs 230 may be moved by zone tab 230A, 230B,230C, 230D events on display device 100, such as a mouse click or touch.

Computing device 122 may, at 530, define the portions of the datarepresented by each zone 210A, 210B, 210C and set the zone thresholds410 when a data widget 105 is wired to the control widget 115. Thenumber of zones 210 and visual characteristics of the zones 210 may bepre-defined, implementation dependent, or user specified. Control widget115 may represent the data values of data widget 105. The portions ofthe data represented be each zone 210A, 210B, 210C may be pre-defined,implementation dependent, or user specified.

Computing device 122 may receive input, at 540, from a control widget105 event whenever a range pointer 220A, 220B or zone tab 230A, 230B,230C, 230D is moved. Certain embodiments may also receive input fromadditional control widget events, such as a double click. In response tothe control widget 115 event, computing device 122 may, at 550, selectthe control widget 115 data range to emphasize. In various embodiments,the selected data range may be the data values between two rangepointers 220A, 220B. In certain embodiments with only one range pointer220A, or more than two range pointers 220, the selected data range, ordata ranges, may be pre-defined or may require additional control widget115 events, such as a mouse click or touch on the desired data range. Incertain environments, a control widget 115 event such as a SHIFT+mouseclick may select more than one data range to be visually emphasized.

Computing device 122, may, at 560, visually emphasize the data, in datawidget 105, having data values in the selected data range(s). The datain data widget 105 may be visually emphasized, for example, by changingsize, changing color, changing font, changing background, and applyingspecial effects to the data. Certain embodiments may visually emphasizethe data with the visual characteristics of the control widget 115 zones210 representing the data in the selected data range(s). Certain otherembodiments may visually emphasize the data with pre-defined,implementation specific, or user specified visual characteristics.

Although aspects of the invention have been described in relation to anexemplary embodiment that uses a gauge control widget and a table datawidget, those of skill in the art will recognize that other embodimentsmay be used. For example, the data widget may be a chart, map, list,text, crosstab, form, graph, or any graphical representation of data andthe control widget may be a dial, slide bar, table, graph, or anygraphical representation of a controller.

FIG. 6 depicts a block diagram of components of the computing device 122of the dashboard environment 199 of FIG. 1, in accordance with anembodiment of the present invention. It should be appreciated that FIG.6 provides only an illustration of one implementation and does not implyany limitations with regard to the environments in which differentembodiments may be implemented. Many modifications to the depictedenvironment may be made.

Computing device 122 can include one or more processors 620, one or morecomputer-readable RAMs 622, one or more computer-readable ROMs 624, oneor more tangible storage devices 630, device drivers 640, read/writedrive or interface 632, and network adapter or interface 636, allinterconnected over a communications fabric 626. Communications fabric626 can be implemented with any architecture designed for passing dataand/or control information between processors (such as microprocessors,communications and network processors, etc.), system memory, peripheraldevices, and any other hardware components within a system.

One or more operating systems 628, data widget routines 140, controlwidget routines 150 (FIG. 1), and rendering engines 130 are stored onone or more of the computer-readable tangible storage devices 630 forexecution by one or more of the processors 620 via one or more of therespective RAMs 622 (which typically include cache memory). In theillustrated embodiment, each of the computer-readable tangible storagedevices 630 can be a magnetic disk storage device of an internal harddrive, CD-ROM, DVD, memory stick, magnetic tape, magnetic disk, opticaldisk, a semiconductor storage device such as RAM, ROM, EPROM, flashmemory or any other computer-readable tangible storage device that canstore a computer program and digital information.

Computing device 122 can also include a R/W drive or interface 632 toread from and write to one or more portable computer-readable tangiblestorage devices 670. Data widget routine 140, control widget routine150, and rendering engine 130 on computing device 122 can be stored onone or more of the portable computer-readable tangible storage devices670, read via the respective R/W drive or interface 632, and loaded intothe respective computer-readable tangible storage device 630.

Computing device 122 can also include a network adapter or interface636, such as a TCP/IP adapter card or wireless communication adapter(such as a 4G wireless communication adapter using OFDMA technology).Data widget routine 140, control widget routine 150, and renderingengine 130 on computing device 122 can be downloaded to the computingdevice from an external computer or external storage device via anetwork (for example, the Internet, a local area network or other, widearea network or wireless network) and network adapter or interface 636.From the network adapter or interface 636, the programs are loaded intothe computer-readable tangible storage device 630. The network maycomprise copper wires, optical fibers, wireless transmission, routers,firewalls, switches, gateway computers, and/or edge servers.

Computing device 122 can also include a display screen 650, a keyboardor keypad 660, and a computer mouse or touchpad 655. Device drivers 640interface to display screen 650 for imaging, to keyboard or keypad 660,to computer mouse or touchpad 655, and/or to display screen 650 forpressure sensing of alphanumeric character entry and user selections.The device drivers 640, R/W drive or interface 632, and network adapteror interface 636 can comprise hardware and software (stored incomputer-readable tangible storage device 630 and/or ROM 624).

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Java, Smalltalk, C++ or the like,and conventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

Although preferred embodiments have been depicted and described indetail herein, it will be apparent to those skilled in the relevant artthat various modifications, additions, substitutions and the like can bemade without departing from the spirit of the invention, and these are,therefore, considered to be within the scope of the invention, asdefined in the following claims.

What is claimed is:
 1. A method for controlling visualization of data,the method comprising: displaying, by a processor, first data in a firstdata graphical user interface (GUI) in a dashboard on a display device,wherein the first data GUI displays the first data in a two-dimensionaldata table; displaying, by the processor, a control GUI in the dashboardrepresenting the first data, the control GUI including two or moreneedle-shaped range defining visual elements, each having a first endcorresponding to a data value and a second end, the first end of eachrange defining visual element being moveable on a circular path viainput received by the control GUI, the second end of each range definingvisual element being fixed at a same point, the two or more rangedefining visual elements defining three or more ranges of the firstdata, wherein the first data GUI and the control GUI are simultaneouslydisplayed in the dashboard, and a first communication link allowsinformation to pass between the first data GUI and the control GUI;displaying, by the processor, indicia associated with each of the two ormore range defining visual elements, each indicia indicating the datavalue corresponding with the respective range defining visual element;receiving, by the processor, input from the control GUI indicating thatone of the two or more range defining visual elements has been moved,thereby re-defining two of the three or more ranges of the first data,the input including a selection of one of the three or more ranges ofthe first data in the control GUI; and in response to receiving theinput, visually emphasizing data in the first data GUI having datavalues in the selected one of the three or more ranges of the first datain the control GUI.
 2. The method according to claim 1, wherein thedisplaying, by the processor, of the control GUI includes: displaying aplurality of zones representing definable portions of the first data,each of the plurality of zones having distinguishable visualcharacteristics, the zones being separated by zone defining visualelements; defining, by the processor, the portions of the first datarepresented by each of the zones, based on data values of the first datain the first data GUI; and displaying, by the processor, indiciaassociated with the zone defining visual elements indicating a datavalue representing a threshold value of the defined portions of thefirst data.
 3. The method according to claim 2, wherein the visuallyemphasizing data in the first data GUI having data values in theselected one of the three or more ranges of the first data in thecontrol GUI further comprises: visually emphasizing first data in thefirst data GUI, in the selected one of the three or more ranges of thefirst data, with the visual characteristics of the zones representingportions of the first data in the selected range.
 4. The methodaccording to claim 2, wherein the zone defining visual elements aremovable via input received by the control GUI.
 5. The method accordingto claim 4, further comprising: receiving, by the processor, input fromthe control GUI indicating at least one of the plurality of zonedefining visual elements have been moved; and in response, visuallyemphasizing first data in the first data GUI having data values in aselected one of the defined data ranges.
 6. The method according toclaim 2, further comprising: establishing a second communication linkthat allows information to pass between a second data GUI and thecontrol GUI, the second data GUI displaying second data; defining, bythe processor, the portions of the first and second data represented byeach of the zones, based on data values of the first data in the firstdata GUI and the second data in the second data GUI; and updating thedisplay of a plurality of zones to represent a superset of the dataranges of the first and second data.
 7. The method according to claim 1,wherein selecting one of the defined data ranges includes one or moreof: a mouse click on the data range; a touch on the data range; and apre-defined selection.
 8. The method according to claim 1, whereinvisually emphasizing includes changing size, changing color, changingfont, changing background, and special effects.
 9. A non-transitorycomputer program product for controlling visualization of data, thecomputer program product comprising one or more computer-readabletangible storage devices and program instructions stored on at least oneof the one or more computer-readable tangible storage devices, theprogram instructions comprising: program instructions to display, by aprocessor, first data in a first data graphical user interface (GUI) ina dashboard on a display device, wherein the first data GUI displays thefirst data in a two-dimensional data table; program instructions todisplay, by the processor, a control GUI in the dashboard representingthe first data, the control GUI including two or more needle-shapedrange defining visual elements, each having a first end corresponding toa data value and a second end, the first end of each range definingvisual element being moveable on a circular path via input received bythe control GUI, the second end of each range defining visual elementbeing fixed at a same point, the two or more range defining visualelements defining three or more ranges of the first data, wherein thefirst data GUI and the control GUI are simultaneously displayed in thedashboard, and a first communication link allows information to passbetween the first data GUI and the control GUI; program instructions todisplay, by the processor, indicia associated with each of the two ormore range defining visual elements, each indicia indicating the datavalue corresponding with the respective range defining visual element;program instructions to receive, by the processor, input from thecontrol GUI indicating that one of the two or more range defining visualelements has been moved, thereby re-defining two of the three or moreranges of the first data, the input including a selection of one of thethree or more ranges of the first data in the control GUI; and inresponse to receiving the input, program instructions to visuallyemphasize data in the in the first data GUI having data values in theselected one of the three or more ranges of the first data in thecontrol GUI.
 10. The non-transitory computer program product accordingto claim 9, wherein the program instructions to display, by theprocessor, the control GUI include: displaying a plurality of zonesrepresenting definable portions of the first data, each of the pluralityof zones having distinguishable visual characteristics, the zones beingseparated by zone defining visual elements; defining, by the processor,the portions of the first data represented by each of the zones, basedon data values of the first data in the first data GUI; and displaying,by the processor, indicia associated with the zone defining visualelements indicating a data value representing a threshold value of thedefined portions of the first data.
 11. The non-transitory computerprogram product according to claim 10, wherein the visually emphasizingdata in the first data GUI having data values in the selected one of thethree or more ranges of the first data in the control GUI furthercomprises: program instructions to visually emphasize first data in thedata GUI, in the selected one of the three or more ranges of the firstdata, with the visual characteristics of the zones representing portionsof the first data in the selected range.
 12. The non-transitory computerprogram product according to claim 10, wherein the zone defining visualelements are movable via input received by the control GUI.
 13. Thenon-transitory computer program product according to claim 12, furthercomprising: program instructions to receive, by the processor, inputfrom the control GUI indicating at least one of the plurality of zonedefining visual elements have been moved; and in response, programinstructions to visually emphasize data in the first data GUI havingdata values in a selected one of the defined data range.
 14. Thenon-transitory computer program product according to claim 10, theprogram instructions further comprising: establishing a secondcommunication link that allows information to pass between a second dataGUI and the control GUI, the second data GUI displaying second data;defining, by the processor, the portions of the first and second datarepresented by each of the zones, based on data values of the first datain the first data GUI and the second data in the second data GUI; andupdating the display of a plurality of zones to represent a superset ofthe data ranges of the first and second data.
 15. The non-transitorycomputer program product according to claim 9, wherein programinstructions to select one of the defined data ranges include one ormore of: a mouse click on the data range; a touch on the data range; anda pre-defined selection.
 16. The non-transitory computer program productaccording to claim 9, wherein program instructions to visually emphasizeincludes changing size, changing color, changing font, changingbackground, and special effects.
 17. A computer system for controllingvisualization of data, the computer system comprising one or moreprocessors, one or more computer readable memories, one or more computerreadable tangible storage devices, and program instructions stored on atleast one of the one or more storage devices for execution by at leastone of the one or more processors via at least one of the one or morememories, the program instructions comprising: program instructions todisplay, by a processor, first data in a first data graphical userinterface (GUI) in a dashboard on a display device, wherein the firstdata GUI displays the first data in two-dimensional a data table;program instructions to display, by the processor, a control GUI in thedashboard representing the first data, the control GUI including two ormore needle-shaped range defining visual elements, each having a firstend corresponding to a data value and a second end, the first end ofeach range defining visual element being moveable on a circular path viainput received by the control GUI, the second end of each range definingvisual element being fixed at a same point, the two or more rangedefining visual elements defining three or more ranges of the firstdata, wherein the first data GUI and the control GUI are simultaneouslydisplayed in the dashboard, and a first communication link allowsinformation to pass between the first data GUI and the control GUI;program instructions to display, by the processor, indicia associatedwith each of the two or more range defining visual elements, eachindicia indicating the data value corresponding with the respectiverange defining visual element; program instructions to receive, by theprocessor, input from the control GUI indicating that one of the two ormore range defining visual elements has been moved, thereby re-definingtwo of the three or more ranges of the first data, the input including aselection of one of the three or more ranges of the first data in thecontrol GUI; and in response to receiving the input, programinstructions to visually emphasize data in the in the first data GUIhaving data values in the selected one of the three or more ranges ofthe first data in the control GUI.